package cn.edu.cdu.group4nb.utils;

import org.apache.poi.hssf.usermodel.*;

import javax.servlet.http.HttpServletResponse;
import java.io.UnsupportedEncodingException;

/**
 * ClassName: MakeExcel
 * Package: cn.edu.cdu.group4nb.utils
 *
 * @date: 2019-10-14 16:05
 * @author:timexin
 * 将数据库中的数据导出成Excel表
 *  sheetName sheet名称
 *  title 标题
 *  values 内容
 */
public class MakeExcel {
    public static HSSFWorkbook getExcel(String sheetName,String[] title,String[][] values){
        // 第一步，创建一个HSSFWorkbook，对应一个Excel文件
        HSSFWorkbook wb = new HSSFWorkbook();

        // 第二步，在workbook中添加一个sheet，对应Excel文件中的sheet
        HSSFSheet sheet = wb.createSheet(sheetName);

        // 第三步，在sheet中添加表头的第0行
        HSSFRow row = sheet.createRow(0);

        // 第四步，创建单元格，并设置表头，设置表头居中
        HSSFCellStyle style = wb.createCellStyle();

        // 创建一个居中格式
        style.setAlignment(HSSFCellStyle.ALIGN_CENTER);

        // 申明列对象
        HSSFCell cell = null;


        // 创建标题
        for(int i = 0;i< title.length;i++){
            cell = row.createCell(i);
            cell.setCellValue(title[i]);
            cell.setCellStyle(style);
        }

        //创建内容
        for(int i= 0;i<values.length;i++){
            row = sheet.createRow(i+1);
            for(int j= 0;j<title.length;j++){
                // 将内容按顺序赋给对应的列对象
                row.createCell(j).setCellValue(values[i][j]);
            }
        }
        return wb;
    }
        //判断传过来的数据是否是空
    public static String IsNull(Object s){
        if(s==null){
            return " ";
        }
        return String.valueOf(s) ;
    }
        // 发送响应流方法
        public static void setResponseHeader(HttpServletResponse response, String fileName) {
            try {
                try {
                    fileName = new String(fileName.getBytes(),"ISO8859-1");
                } catch (UnsupportedEncodingException e) {

                    e.printStackTrace();
                }
                response.setContentType("application/octet-stream;charset=ISO8859-1");
                response.setHeader("Content-Disposition", "attachment;filename="+ fileName);
                response.addHeader("Pargam", "no-cache");
                response.addHeader("Cache-Control", "no-cache");
            } catch (Exception ex) {
                ex.printStackTrace();
            }

}
}
